package com.example.project_dish.Dishes;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.example.project_dish.R;

import java.util.ArrayList;

public class DishesAdapter extends ArrayAdapter<Dishes> {
    //代表fruit_item布局文件的id
    private int resourceId;

    public DishesAdapter(@NonNull Context context, int resource, ArrayList<Dishes> textViewResourceId) {
        super(context, resource, textViewResourceId);
        resourceId = resource;
    }

    /**
     * 把布局和数据绑定，渲染一个列表项的展示效果，返回这个视图（界面）完成布局和数据的组装
     * @param position 第几个列表项 列表的索引
     * @param convertView 原始的界面 （未填充数据）
     * @param parent 列表（列表项的父节点）的界面
     * @return
     */
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        //完成布局和数据的组装,把组装好的界面返回，以供展示

        //1.拿到数据
        Dishes item = getItem(position);

        View view; //自己创建的view对象，来替换

        ViewHolder viewHolder = new ViewHolder();

        //优化逻辑
        //1、如果这个水果（列表项）还没来到手机屏幕，按以前的的来（给它一个加载一个初始界面）
        if (convertView == null){
            view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);

            viewHolder.textView = view.findViewById(R.id.dishes_name);

//            viewHolder.imageView = view.findViewById(R.id.dishes_image);
//
//            viewHolder.textView1 = view.findViewById(R.id.dishes_detail);
//
//            viewHolder.textView2 = view.findViewById(R.id.dishes_price);

            view.setTag(viewHolder);    //存起来
        }else{
            //2、如果这个水果（列表项）以前来过，用以前的界面
            view = convertView;
            //不再次寻找,从ViewHolder里去拿出来
            viewHolder = (ViewHolder)view.getTag();
        }

        //2.加载初始界面(LayoutInflater这个类专门来加载界面的,inflate()加载界面的方法)
//        View view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
//        Log.d("fruit", "position是：" + position + "当前加载的初始对象是：" + view + "当前来到界面水果是：" + item.toString());

        //3.把数据渲染到初始界面
//        ImageView imageView = view.findViewById(R.id.fruit_image);
//        TextView textView = view.findViewById(R.id.fruit_name);
//        TextView textView1 = view.findViewById(R.id.fruit_price);
//        imageView.setImageResource(item.getImageId());
//        textView.setText(item.getName());
//        textView1.setText(item.getPrice()+"");

        viewHolder.textView.setText(item.getName());
//        viewHolder.imageView.setImageResource(item.getImageId());

//        viewHolder.textView.setText(item.getContent());

//        viewHolder.textView1.setText(item.getPrice());

        //4.把界面丢回去展示
        return view;
    }

    class ViewHolder{
        TextView textView;
//        ImageView imageView;
//        TextView textView1;
//        TextView textView2;
    }

}
